package sv.gob.mh.dgii.model;

// Generated Dec 10, 2007 4:52:21 PM by Hibernate Tools 3.2.0.beta7

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.Valid;


/**
 * TbImpuesto generated by hbm2java
 */
@Entity
@Table(name = "TB_IMPUESTO", schema = "CATALOGOS", uniqueConstraints = {})
public class TbImpuesto implements java.io.Serializable {

	// Fields    

	/**
	 * 
	 */
	private static final long serialVersionUID = -5004994709140439081L;

	private String cimpuesto;

	private String dimpuesto;

	private String simpuesto;

	private Boolean bstatus;

	private String cusuario;

	private Date fhingreso;

	private Set<CdDocumento> cdDocumentos = new HashSet<CdDocumento>(0);

	private Set<TbObligacion> tbObligacions = new HashSet<TbObligacion>(0);

	// Constructors

	/** default constructor */
	public TbImpuesto() {
	}

	/** minimal constructor */
	public TbImpuesto(String cimpuesto, String dimpuesto, Date fhingreso) {
		this.cimpuesto = cimpuesto;
		this.dimpuesto = dimpuesto;
		this.fhingreso = fhingreso;
	}

	/** full constructor */
	public TbImpuesto(String cimpuesto, String dimpuesto, String simpuesto,
			Boolean bstatus, String cusuario, Date fhingreso,
			Set<CdDocumento> cdDocumentos, Set<TbObligacion> tbObligacions) {
		this.cimpuesto = cimpuesto;
		this.dimpuesto = dimpuesto;
		this.simpuesto = simpuesto;
		this.bstatus = bstatus;
		this.cusuario = cusuario;
		this.fhingreso = fhingreso;
		this.cdDocumentos = cdDocumentos;
		this.tbObligacions = tbObligacions;
	}

	// Property accessors
	@Id
	@Column(name = "C_IMPUESTO", unique = true, nullable = false, insertable = true, updatable = true, length = 1)
        @NotNull
	public String getCimpuesto() {
		return this.cimpuesto;
	}

	public void setCimpuesto(String cimpuesto) {
		this.cimpuesto = cimpuesto;
	}

	@Column(name = "D_IMPUESTO", unique = false, nullable = false, insertable = true, updatable = true, length = 50)
        @NotNull
	public String getDimpuesto() {
		return this.dimpuesto;
	}

	public void setDimpuesto(String dimpuesto) {
		this.dimpuesto = dimpuesto;
	}

	@Column(name = "S_IMPUESTO", unique = false, nullable = true, insertable = true, updatable = true, length = 10)
	public String getSimpuesto() {
		return this.simpuesto;
	}

	public void setSimpuesto(String simpuesto) {
		this.simpuesto = simpuesto;
	}

	@Column(name = "B_STATUS", unique = false, nullable = true, insertable = true, updatable = true, precision = 1, scale = 0)
	public Boolean getBstatus() {
		return this.bstatus;
	}

	public void setBstatus(Boolean bstatus) {
		this.bstatus = bstatus;
	}

	@Column(name = "C_USUARIO", unique = false, nullable = true, insertable = true, updatable = true, length = 30)
	public String getCusuario() {
		return this.cusuario;
	}

	public void setCusuario(String cusuario) {
		this.cusuario = cusuario;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FH_INGRESO", unique = false, nullable = false, insertable = true, updatable = true, length = 7)
        @NotNull
	public Date getFhingreso() {
		return this.fhingreso;
	}

	public void setFhingreso(Date fhingreso) {
		this.fhingreso = fhingreso;
	}

	@OneToMany( fetch = FetchType.LAZY, mappedBy = "tbImpuesto")
	public Set<CdDocumento> getCdDocumentos() {
		return this.cdDocumentos;
	}

	public void setCdDocumentos(Set<CdDocumento> cdDocumentos) {
		this.cdDocumentos = cdDocumentos;
	}

	@OneToMany( fetch = FetchType.LAZY, mappedBy = "tbImpuesto")
        @Valid
	public Set<TbObligacion> getTbObligacions() {
		return this.tbObligacions;
	}

	public void setTbObligacions(Set<TbObligacion> tbObligacions) {
		this.tbObligacions = tbObligacions;
	}

}
